Skip to content

feat(checks): distinguish running, pending action, and pending condition states - #179

Merged
wgordon17 merged 10 commits into
gordon-code:mainfrom
wgordon17:feat/acute-check-status-states
Nov 1, 2026
Merged

wgordon17 merged 10 commits into
gordon-code:mainfrom
wgordon17:feat/acute-check-status-states

Conversation

@wgordon17

Copy link
Copy Markdown
Member

Summary

  • Split non-terminal PR checkStatus into running (Checks running), waiting (Pending action), and pending (Pending condition) via zero-extra-cost GraphQL statusCheckRollup.contexts.checkRunCountsByState counts, excluding all three non-terminal states from _prEnrichmentCache and UNSTABLE merge-state overrides
  • Restrict 30s _hotPRs polling to running and checkStatusStale PRs plus a 60s post-Approve/Ready? mutation pin window (_hotPRPinnedUntil), and evict workflow runs from _hotRuns when transitioning out of in_progress/queued
  • Surface distinct StatusDot styles/tooltips, inline badges, and filter chips across PR tabs (PullRequestsTab, TrackedTab, DependenciesTab) and full ActionsTab status parity (WorkflowRunRow, WorkflowSummaryCard, ActionsTab, and custom-tab counts)

Closes #178

Update StatusDot STATUS_CONFIG with distinct 'running', 'waiting', and
'pending' styles and tooltips. Expand PullRequestFiltersSchema.checkStatus
and ActionsFiltersSchema.conclusion in view.ts and filterTypes.ts.
Render 'Checks running', 'Pending action', and 'Pending condition'
badges across DependenciesTab, PullRequestsTab, and TrackedTab, and
update checkStatusOrder and repo-group check counts.
Export isWorkflowRunWaiting and isWorkflowRunPending in filters.ts and
surface 'Pending action' and 'Pending condition' across WorkflowRunRow,
WorkflowSummaryCard, ActionsTab (sortWorkflowsByStatus, filteredRuns,
workflowCounts, and collapsedSummary), and DashboardPage custom-tab
action badge counts. Update docs/USER_GUIDE.md and README.md.
Deduplicate the non-terminal waiting/pending icon branch in
WorkflowRunRow and remove a redundant null guard in ActionsTab
sortWorkflowsByStatus. Finalize C4 test additions in ActionsTab.test.tsx
and DashboardPage.test.tsx.
Update the Quick Start hot-poll tip and Tracked Tab PR row description
in docs/USER_GUIDE.md to reflect the 3-way non-terminal check states
(running, Pending action, and Pending condition), deduplicate status
badge JSX in PullRequestsTab and TrackedTab, and include final C4
ActionsTab/DashboardPage test additions.
Cover isWorkflowRunWaiting, isWorkflowRunPending, and
matchesActionsConclusionFilter in tests/lib/filters.test.ts (including
non-terminal exclusion on terminal conclusion filters and action_required
exclusion under conclusion="other") and verify 3-way rollup
classification and partial-error salvage in runForkPRFallback in
tests/services/api.test.ts.
PRs whose checks are "pending" (queued check runs or a pending commit
status) now keep hot-polling for 3 minutes from the first pending
observation on their head commit. This catches runner pickup, gaps
between dependent jobs, and commit-status CI that reports pending while
building, while PRs parked on a condition stop hot-polling after the
window instead of indefinitely.
@wgordon17
wgordon17 force-pushed the feat/acute-check-status-states branch from a2fa095 to d799e07 Compare November 1, 2026 14:38
@wgordon17
wgordon17 marked this pull request as ready for review November 1, 2026 14:42
@wgordon17
wgordon17 requested a review from a team November 1, 2026 14:42
@wgordon17
wgordon17 merged commit 1d5bb62 into gordon-code:main Nov 1, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Distinguish running CI checks from pending action and condition states

1 participant